package com.menqui.localizame.servicios;

import java.util.Date;

import android.app.Activity;
import android.content.Context;
import android.location.Location;

import com.menqui.localizame.Gps.GpsFichero;
import com.menqui.localizame.Gps.GpsPantalla;
import com.menqui.localizame.Gps.GpsWebService;
import com.menqui.localizame.estructuras.DatosRuta;

public class ProcesarLocalizacion {
	Context context = null;
	Activity activity = null;
	GpsPantalla pantalla = null;
	GpsFichero fichero = null;
	GpsWebService servidor = null;
	DatosRuta datosRuta = null;

	public ProcesarLocalizacion(Context context, Activity activity) {
		this.context = context;
		this.activity = activity;
		pantalla = new GpsPantalla(activity, context);
		fichero = new GpsFichero(context);
		servidor = new GpsWebService(pantalla, fichero);
	}
	public void setLocalizacionPantalla(Location location) {
		if (location != null) {
			pantalla.setLocalizacion(location);
		}
	}

	public void setLocalizacion(Location location) {
		if (location != null && datosRuta != null) {
			pantalla.setLocalizacion(location);
			fichero.setLocalizacion(location);
			servidor.setLocation(location);
		}
	}

	public void startRuta(Location location, String usuario, String titulo, String idRuta) {
		datosRuta = new DatosRuta();
		datosRuta.setNombreRuta(titulo);
		datosRuta.setUsuario(usuario);
		datosRuta.setFechaInicio(new Date());

		if (!idRuta.equals("0")){
			datosRuta.setIdRuta(Long.valueOf(idRuta));
		}

		servidor.startRuta(location, datosRuta);
		fichero.setLocalizacion(location);
		pantalla.setLocalizacion(location);

	}

	public void addComentario(String comentario, Location location) {
		if (datosRuta.getIdRuta() > 0) {
			servidor.addComentario(datosRuta.getIdRuta().toString(), comentario, location);
		}
	}

	public boolean isRutaIniciada(){
		return datosRuta != null && datosRuta.getIdRuta().compareTo(-1L) != 0;
	}
}
